import request from '../request.ts'

// 批改界面API

/**
 * 获取批改界面的完整数据（左侧学生列表 + 右侧题目详情）
 * @param {number} examId - 考试ID
 * @returns {Promise} 返回批改界面数据
 */
export const getGradingUIData = (examId) => {
  return request({
    url: `/grading-ui/exam/${examId}`,
    method: 'get'
  })
}

/**
 * 获取指定学生的主观题详情（中间显示区域）
 * @param {number} examId - 考试ID
 * @param {number} studentId - 学生ID
 * @returns {Promise} 返回学生主观题详情列表
 */
export const getStudentSubjectiveQuestions = (examId, studentId) => {
  return request({
    url: `/grading-ui/exam/${examId}/student/${studentId}/questions`,
    method: 'get'
  })
}

/**
 * 自动保存单个题目的批改结果
 * @param {Object} gradingData - 批改数据
 * @param {number} gradingData.answerId - 答案ID
 * @param {number} gradingData.score - 分数（必须大于0）
 * @param {string} gradingData.comment - 评语（可选，最大1000字符）
 * @returns {Promise} 返回保存结果
 */
export const autoSaveGrading = (gradingData) => {
  return request({
    url: '/grading-ui/auto-save',
    method: 'post',
    data: gradingData
  })
}

// 批量保存批改结果（扩展功能）
export const batchSaveGrading = (gradingList) => {
  return Promise.all(
    gradingList.map(grading => autoSaveGrading(grading))
  )
}

// 获取批改统计信息（扩展功能）
export const getGradingStats = (examId) => {
  return request({
    url: `/grading-ui/exam/${examId}/stats`,
    method: 'get'
  })
}

/**
 * 获取需要批改的考试列表
 * @returns {Promise} 返回需要批改的考试列表
 */
export const getExamsNeedingGrading = () => {
  return request({
    url: '/grading/exams',
    method: 'get'
  })
}